home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / A-COMAL Series / (k)aac.d64 / comal-misshd3.l < prev    next >
Text File  |  2007-02-28  |  4KB  |  149 lines

  1. 0010 //DELETE "0:MISSHD3-CO"
  2. 0020 //SAVE   "0:MISSHD3-CO"
  3. 0030 //2D PROP NAV AIR-TO-GROUND MISSILE
  4. 0035 POKE 53265,11 // BLANK SCREEN
  5. 0040 SELECT OUTPUT "LP:"
  6. 0050 VA:=1562
  7. 0060 XT:=5000
  8. 0070 ANL:=4
  9. 0080 VT:=0
  10. 0090 GAMT:=0
  11. 0100 ATAU:=.05
  12. 0110 T3:=0
  13. 0120 PRINT 
  14. 0130 PRINT "    2D AIR-TO GROUND MISSILE SOLUTION -LINEAR- VER 5/10/84"
  15. 0140 PRINT 
  16. 0150 PRINT "VA=",VA," XT=",XT," VT=",VT," GAMT=",GAMT," ATAU=",ATAU," T3=",T3
  17. 0160 PRINT 
  18. 0170 PRINT TAB(2),"T";TAB(6),"VM";TAB(12),"DELX";TAB(18),"DELZ";
  19. 0180 PRINT TAB(24),"SIGR";TAB(30),"GAMM";TAB(36),"THM";TAB(42),"AL";
  20. 0190 PRINT TAB(49),"GA";TAB(56),"DELS";TAB(63),"ANM";TAB(70),"ZD"
  21. 0200 DT:=.01
  22. 0210 GC:=32.1739
  23. 0220 RAD:=57.2958
  24. 0230 PIE:=3.1415927
  25. 0240 XM:=0
  26. 0250 XI:=XT
  27. 0260 ZM:=0
  28. 0270 ZT:=500
  29. 0280 SIGT:=ATN((ZM-ZT)/(XT-XM))
  30. 0290 SIGR:=0
  31. 0300 SIGRD:=0
  32. 0310 AKA:=-2.125
  33. 0320 AKR:=5
  34. 0330 AKT:=5
  35. 0340 AKN:=AKT*ANL
  36. 0350 GAMMD:=0
  37. 0360 GAMM:=0
  38. 0370 AL:=0
  39. 0380 W:=48.3
  40. 0390 S:=.196
  41. 0400 RHO:=2.3769E-03
  42. 0410 CBAR:=.5
  43. 0420 IY:=1.6
  44. 0430 CL:=0
  45. 0440 VS:=1116.9
  46. 0450 VM:=VA
  47. 0460 GAMT:=GAMT/RAD
  48. 0470 GAMTD:=0
  49. 0480 THDD:=0
  50. 0490 THD:=0
  51. 0500 THM:=0
  52. 0510 T:=0
  53. 0520 T2:=.1
  54. 0530 T4:=T3
  55. 0540 TR:=385
  56. 0550 BTAU:=ATAU+DT
  57. 0560 DELMAX:=.087
  58. 0570 DELS:=0
  59. 0580 DELTR:=-9.7E-03
  60. 0590 EP:=0
  61. 0600 E2P:=0
  62. 0610 SIGRD:=0
  63. 0620 //ITERATIVE CALCULATION
  64. 0630 //TRACKING LOOP
  65. 0640 REPEAT 
  66. 0650 EP:=SIGT-SIGR
  67. 0660 IF T>(T4-DT) THEN SAMPLEDATA
  68. 0670 SIGR:=SIGR+SIGRD*DT
  69. 0680 D1EL:=E2P*AKR*(AKN/AKA)+DELTR
  70. 0690 DELS:=(DELS*ATAU+D1EL*DT)/BTAU
  71. 0700 IF DELS>DELMAX THEN DELS:=DELMAX
  72. 0710 IF DELS<-DELMAX THEN DELS:=-DELMAX
  73. 0720 //AERODYNAMICS AND CONTROL
  74. 0730 AM:=VM/VS
  75. 0740 CDO:=.669
  76. 0750 CDCL2:=.045
  77. 0760 CMA:=-3.85
  78. 0770 CMD:=-3.52
  79. 0780 CMQ:=-400
  80. 0790 CLAL:=13.6
  81. 0800 CLD:=3.15
  82. 0810 CL:=AL*CLAL+DELS*CLD
  83. 0820 CD:=CDO+CDCL2*CL*CL
  84. 0830 QA:=.5*RHO*VM*VM
  85. 0840 QS:=QA*S
  86. 0850 ZL:=QS*CL
  87. 0860 D:=QS*CD
  88. 0870 AMTHD:=QS*CBAR*CBAR*CMQ*THD/(2*VM)
  89. 0880 AMAL:=QS*CBAR*CMA*AL
  90. 0890 AMDEL:=QS*CBAR*CMD*DELS
  91. 0900 THDD:=(AMAL+AMDEL+AMTHD)/IY
  92. 0910 THD:=THD+THDD*DT
  93. 0920 THM:=THM+THD*DT
  94. 0930 GAMMD:=((ZL/W)+(TR/W)*SIN(AL)-COS(GAMM))*GC/VM
  95. 0940 GAMM:=GAMM+GAMMD*DT
  96. 0950 VMD:=GC*((TR/W)*COS(AL)-D/W-SIN(GAMM))
  97. 0960 ANM:=VM*GAMMD/GC
  98. 0970 VM:=VM+VMD*DT
  99. 0980 AL:=THM-GAMM
  100. 0990 GA:=SIGR-THM
  101. 1000 IF GA>=.35 THEN GA:=.35
  102. 1010 IF GA<-.35 THEN GA:=-.35
  103. 1020 //MISSILE-TARGET KINEMATICS
  104. 1030 XM:=XM+VM*COS(GAMM)*DT
  105. 1040 ZM:=ZM-VM*SIN(GAMM)*DT
  106. 1050 GAMM:=GAMM+GAMTD*DT
  107. 1060 XT:=XT+VT*COS(GAMT)*DT
  108. 1070 ZT:=ZT-VT*SIN(GAMT)*DT
  109. 1080 DELX:=XT-XM
  110. 1090 DELZ:=ZM-ZT
  111. 1100 SIGT:=ATN(DELZ/DELX)
  112. 1110 IF DELX<0 THEN SIGT:=SIGT+PIE
  113. 1120 R:=SQR(DELX*DELX+DELZ*DELZ)
  114. 1130 T:=T+DT
  115. 1140 //ITERATIVE LOGIC AND PRINTOUTS
  116. 1150 IF R<=30 THEN ENDOUT
  117. 1160 IF T>(T2-DT) THEN PRINTOUT
  118. 1170 IF T>=5 THEN END 
  119. 1180 UNTIL R<=30
  120. 1190 PROC PRINTOUT 
  121. 1200 A:=VM*SIN(GAMM-SIGT)-VT*SIN(GAMT-SIGT)
  122. 1210 B:=VM*COS(GAMM-SIGT)-VT*COS(GAMT-SIGT)
  123. 1220 DELT:=R/B
  124. 1230 ZD:=A*DELT
  125. 1240 PRINT TAB(1),INT(T*100)/100;TAB(6),INT(VM);TAB(12),INT(DELX);
  126. 1250 PRINT TAB(18),INT(DELZ);TAB(24),INT(SIGR*1000)/1000;
  127. 1260 PRINT TAB(30),INT(GAMM*1000)/1000;TAB(36),INT(THM*1000)/1000;
  128. 1270 PRINT TAB(42),INT(AL*1000)/1000;TAB(49),INT(GA*1000)/1000;
  129. 1275 PRINT TAB(56),INT(DELS*1000)/1000;
  130. 1280 PRINT TAB(63),INT(ANM*100)/100;TAB(70),INT(ZD*100)/100
  131. 1290 T2:=T2+.1
  132. 1300 ENDPROC PRINTOUT
  133. 1310 PROC ENDOUT 
  134. 1320 PRINTOUT
  135. 1325 POKE 53265,27 // TURN SCREEN ON
  136. 1330 PRINT 
  137. 1340 PRINT "ZD= ",INT(ZD*1000)/1000;"  DELT= ",INT(DELT*1000)/1000
  138. 1350 SELECT OUTPUT "DS:"
  139. 1360 PRINT " DONE"
  140. 1370 END 
  141. 1380 ENDPROC ENDOUT
  142. 1390 PROC SAMPLEDATA 
  143. 1400 T4:=T4+T3
  144. 1410 E2P:=EP
  145. 1420 SIGRD:=AKR*AKT*E2P
  146. 1430 IF SIGRD>=.35 THEN SIGRD:=.35
  147. 1440 IF SIGRD<-.35 THEN SIGRD:=-.35
  148. 1450 ENDPROC SAMPLEDATA
  149.